﻿using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;

namespace ComHlp.ContentClasses.VirtualControls.NetPlan
{
    /// <summary> representing one order to display for the netplan </summary>
    [SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global")]
    public class ItxNetPlanOrder
    {
        /// <summary> X(01) S=selektierter Auftrag </summary>
        public string Type { get; set; }

        /// <summary> X(11) 2 Aufkrs, 6 Auflfd, 3 Aufpos </summary>
        public string Order { get; set; }

        /// <summary> 9(03) Difftage zum Start-Datum0 </summary>
        public int PlannedStartDaysDiff { get; set; }

        /// <summary> 9(03) Difftage zum Start-Datum0 </summary>
        public int PlannedEndDaysDiff { get; set; }

        /// <summary> 9(03) Difftage zum Start-Datum0 </summary>
        public int CurrentStartDaysDiff { get; set; }

        /// <summary> 9(03) Difftage zum Start-Datum0 </summary>
        public int CurrentEndDaysDiff { get; set; }

        /// <summary> X(01)	V=Veredlung		RGB=255.255.128
        /// B=Bestellung RGB = 0.96.192
        /// K=Kundenauftrag RGB = 255.128.255
        /// L=Lieferung RGB = 196.196.196
        /// beim Auftrag selbst(index-sel= index - auftrag) RGB=128.255.255
        /// </summary>
        public EItxNetPlanOrderType NetPlanOrderType { get; set; }

        /// <summary> X(01) 	S=Soll (noch nicht begonnen) -> kein 2.Block
        /// I=Ist(bereits beendet) RGB 2.Block bei Kennz2=W/V: 255.96.96
        /// (Beispiel V/G1.2.3)
        /// RGB 2.Block bei Kennz2 sonst:0.196.0
        /// (Beispiel V/MI.61.2)
        /// P=sonst wie bei I
        /// </summary>
        public EItxNetPlanOrderState1 NetPlanOrderState1 { get; set; }

        /// <summary> X(01) 	W=verspätet und kaputtes Datum
        /// V=verspätet
        /// F = nicht terminiert(ROT!)
        /// 1=kaputtes Datum
        /// leer=sonst
        /// </summary>
        public EItxNetPlanOrderState2 NetPlanOrderState2 { get; set; }

        /// <summary> 9(02)	wird als schwarzer Balken innerhalb des 2.Blocks gemalt
        /// bei B = Bestellung Anteil bereits geliefert
        /// bei K=Kundenauftr immer 00
        /// leer = 100%
        /// </summary>
        public int Progress { get; set; }

        /// <summary> Index des übergeordneten Auftrags </summary>
        public int IndexOfHeadOrder { get; set; }

        /// <summary> Z = Zusatz </summary>
        public bool Addon { get; set; }

        /// <summary> additions </summary>
        public List<ItxNetPlanAddon> AddonList { get; } = new List<ItxNetPlanAddon>();
    }
}
